<?php namespace Member\Model;

use Hdphp\Model\Model;

class User extends Model{

	//数据表
	protected $table = "shop_user";


	//自动验证
	protected $validate=array(
		//字段名: 表单字段名
		//验证方法: 函数或模型方法
		//验证条件: 1有字段时验证(默认)	2值不为空时验证  	3必须验证 
		//验证时间: 1 插入时验证		2更新时空时验证 	3全部情况验证 (默认)
		// array('字段名','验证方法','提示信息',验证条件,验证时间),
		array('username','required','用户名不能为空',3,3),
		array('password','comfirm:password_c','两次密码不一致',3,3),
		array('code','required','验证码不能为空',3,3),
	);

	//自动完成
	protected $auto=array(
		//字段名: 表单字段名
		//处理方法: 函数或模型方法
		//方法类型: string(字符串 默认)  function(函数)  method(模型方法)
		//验证条件: 1有字段时处理(默认)	2值不为空时 3必须处理
		//处理时间: 1 插入时  2更新时 3全部情况 (默认)
		//array('字段名','处理方法','方法类型',验证条件,验证时间),
	);

	public function reg()
	{
		if($this->create())
		{
			if(Db::table('shop_user')->where('username',$_POST['username'])->get())
			{
				$this->error="账号已存在,请重新输入";
				return false;
			}
			if(strtoupper($_POST['code']) != $_SESSION['code'])
			{
				$this->error="验证码错误";
				return false;
			}
			$data['username']=$_POST['username'];
			$data['password']=md5($_POST['password']);
			$data['reg_at']=time();
			$this->add($data);
			return true;
		}	
	}

	public function log()
	{
		if(empty($_POST['username']))
			{
				$this->error="账号不能为空";
				return false;
			}
			$user=Db::table('shop_user')->where('username',$_POST['username'])->first();
			if(!$user)
			{
				$this->error="账号不存在";
				return false;
			}
			
			if(empty($_POST['password']))
			{
				$this->error="密码不能为空";
				return false;
			}
			if(md5($_POST['password']) != $user['password'])
			{
				$this->error="密码错误";
				return false;
			}
			$_SESSION['user_id']=$user['user_id'];
			$_SESSION['username']=$user['username'];
			return true;
	}
	//时间操作
	protected $timestamps=false;

	//允许插入的字段
	protected $insertFields=array();

	//允许更新的字段
	protected $updateFields=array();

	//前置方法 比如: _before_add 为添加前执行的方法
	protected function _before_add(){}
	protected function _before_delete(){}
	protected function _before_save(&$data){}

	protected function _after_add(){}
	protected function _after_delete(){}
	protected function _after_save(){}

}